<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <div id="app">
        <button @click="list.push(99)">添加元素</button>
        <button @click="list.pop()">删除元素</button>

        <!-- 
            vue2的缺陷：
                vue2出来的时候，js的语法还没有很丰富，所以导致它内部有一些缺陷
                无法让数组通过下标改变，触发界面更新
            Vue3出来的时候。js已经很丰富了，从底层上解决了这个问题
                Vue3没有这个问题
        -->
        <button @click="list[0] = 9999">通过下标修改</button>

        <!-- 方法一：利用splice -->
        <!-- <button @click="list.splice(0, 1, 9999)">通过下标修改</button> -->

        <!-- 方法二：vue3没用---- vue3把$set给删了 -- 了解 -->
        <!-- <button @click=" $set(list, 0, 9999) ">通过下标修改</button> -->

        <p>{{ list }}</p>
    </div>

    <script src="./vue.js"></script>
    <script>
        new Vue({
            el: '#app',
            data() {
                return {
                    list: [10,20,30]
                }
            },
            watch: {
                // 就这么规定的
                list () {
                    console.log('数组改变了')
                }
            }
        })
    </script>
</body>
</html>